import jszip from "jszip"
import FileSaver from "file-saver"
import axios from "axios"

const fileHandler={
  getFile:(url)=>{
    return new Promise(resolve,reject)=>{
      axios({
        method:'get',
        url,
        responseType:'blob'
      }).then(res=>{
        resolve(res.data)
      }).catch(err=>reject(err.toString()))
    }
  },
  filesToZip:(urlData)=>{
    const zip=new jszip()
    let cache={}
    let promiseArr=[]
    urlData.map(item=>{
      console.log(this.getFile)
      const promise = this.getFile(item).then(res=>{
        //下载文件 并存为ArrayBuffer对象
        const arr_name=item.split('/')
        const file_name=arr_name[arr_name.length-1] //获取文件名
        zip.file(file_name,res,{binary:true}) //逐个添加文件
        cache[file_name]=res
      })
      promiseArr.push(promise)
    })
    
    Promise.all(promiseArr).then(()=>{
      zip.generateAsync({type:'blob'}).then(res=>{
        FileSaver .saveAs(res,"文件.zip")
      })
    })
  }
}
